For many years, there was no such thing as automated "configuration management" in relation to computer software. At first, there was nothing of a software nature having a configuration to be managed. As the early software "systems" were developed, documentation and control of the "current version" was most often accomplished as a de-facto manual configuration management in the manner shown in FIG. 1. A system was built, tested, the components revised and the system rebuilt. It was then installed and any future changes made by way of "patches" which were, in turn hand written as generally indicated at 10 in FIG. 1 onto the program listing 12 of the system as originally built and installed.
More recently, however, Computer-Aided Software Engineering (CASE) environments are becoming not only helpful but, in many instances, essential for complex software projects, just as Computer-Aided Design (CAD) systems have become essential for complex hardware projects. The phrase "software engineering environment", while used in many contexts, generally refers to an operating system environment and a collection of tools or subroutines. It is in this context that the term is used herein.
A few well know prior art CASE systems are:
UNIX/PWB--designed to run on AT&T's UNIX programming environment, includes the SCCS source code control system and the MAKE configuration tool.
RCS--a more powerful source code control system that also runs on UNIX systems.
CMS and MMS--the Digital Equipment Corp. VAX/VMS equivalent to SCCS and MAKE. CMS provides a richer set of source control capabilities than does SCCS or RCS; MMS is virtually the same as MAKE. SCCS/MAKE, RCS, and CMS/MMS work with the standard compilers, editors, and debuggers found on the host system.
ALS--the Ada Language System, was developed to meet the Stoneman requirements for an Ada programming support environment. ALS includes an Ada compiler, debugger, binder, and execution environment. In addition, the ALS has a source code control system that keeps successive generations and variants of packages. The ALS does not have a single configuration management tool, but provides the primitives needed to build one. The ALS Ada compiler/linker detects the need to recompile (as required by the Ada standard).
Cedar--built on the Xerox PARC Computer Science Laboratory system. Although the Cedar system does not provide for source code control, it does allow several copies of a module to exist, each stamped with a date/time. The Cedar "System Modeller" is a configuration management tool that notices when a new version of a module comes into existence (via coordination with the editor), and can build a complete program from an arbitrary set of module versions. Cedar requires that only the Cedar editor and compiler be used.